上一篇,我們已經將需要用到的db建置完成
這一篇開始,我們就先來做scaffold吧
要做scaffold之前我們得先安裝幾個套件
分別是
Microsoft.EntityFrameworkCore.SqlServer
Microsoft.EntityFrameworkCore.Tools
Microsoft.VisualStudio.Web.CodeGeneration.Design
Microsoft.EntityFrameworkCore.Tools.DotNet
安裝完畢後我們可以看到相依性的資料夾中多出了Nuget的資料夾
再來我們得先找出我們docker上db的位置
所以我們先輸入以下指令碼來查詢
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' sqltest
接下來我們先進入CoreEmpty專案底下(謎之音:因為它需要.net core專案來做....
接著我們先使用which 去尋找dotnet
得到路徑後...我們就來打看看吧
/usr/local/share/dotnet/dotnet ef
執行後我們就可以看到可愛的獨角獸了
接著我們打開terminal開始敲鍵盤吧!!
開始我們先來查詢該怎麼使用cli
發現dbcontext,繼續查下去
終於看到我們的scaffold了,仔細在研究一下他的用法
確定後就讓我們輸入正確的指令吧
dotnet ef dbcontext scaffold 'Data Source=127.0.0.1,1401;Initial Catalog=Blogging;Persist Security Info=True;User ID=sa;Password=Qazwsx!23' Microsoft.EntityFrameworkCore.SqlServer -o /Models
接著檢查一下資料夾
這邊我們看到了自動產生的BloggingContext
目前這邊看起來我們已經完成了,應該是沒什麼問題了
這邊我們將會需要測試一下,所以我們就先建立一個Controller叫做Blogs
接著讓我們執行起來使用postman試試看
在這邊我們遇到了例外問題!!
看起來這邊我們應該是需要為BloggingContext建立一個建構子
為何要建立這樣的一個建構子呢?
因為我們在Startup裡面已經有註冊了所以我們才需要這樣做
這邊我們執行起來開始使用postman測試一下吧
什麼!?失敗了為什麼?
讓我們翻到應用程式輸出來看看
看來db是連線不到的,這是為什麼呢?
因為我們必須要把它當作內網來連線而不是放在本機上來連線
所以這邊我們透過ifconfig找到我們的內網ip位置
將連線的ip改為內網的192.168.0.18
接著再讓我們測試一次
終於成功了!!